The present invention relates in general to computer-based instrumentation systems and in particular to an easily modifiable system for configuring the operating state of a computer-based instrumentation system according to control signals generated by many independent control sources.
Microcomputers have expanded the capabilities of oscilloscopes, logic analyzers and similar instruments in many ways. For example, in addition to performing the traditional oscilloscope function of displaying representations of waveform produced by devices under test, microcomputer-based oscilloscopes can perform measurements on waveforms and display the results, can generate and display synthesized waveforms, and can perform self-calibration and self-diagnosis operations. Microcomputers have also made complicated oscilloscopes more "user friendly" by facilitating the use of interactive menus to simplify the process of configuring an oscilloscope to carry out selected operations, and by facilitating the display of graphics, data, messages and other information enabling operators to more easily determine the operating state of an oscilloscope and to understand the results of oscilloscope operation.
Computer-based instrumentation systems such as oscilloscopes and the like often comprise a number of interactive hardware and software subsystems, each subsystem being adapted to carry out some function of the instrument and each having various configurable operating modes. In a digitizing oscilloscope, hardware subsystems may include one or more vertical input channels, a digitizer system, a waveform data storage system, a display system, and other hardware subsystems each of which has adjustable modes of operation. For example, vertical input channels typically have adjustable gain, offset and other configurable operating parameters, and the digitizer system may have selectable triggering modes, variable sampling rates, etc. Oscilloscope software subsystems may include routines for calculating and displaying synthesized waveforms based on acquired data, routines for calculating and displaying signal peaks, rise times and other measurable attributes which can be determined from digitized waveform data, and routines for performing other functions.
In addition to having multiple subsystems for carrying out operations in various configurable operating modes, a computer-based oscilloscope can provide several different ways for an operator to control the configuration of the subsystems. For example, an oscilloscope may permit an operator to adjust instrument operating modes by utilizing pushbuttons and knobs mounted on the oscilloscope front panel, by making selections from menus displayed on the screen, or by utilizing a keyboard attached to the oscilloscope. Some oscilloscopes may further include provisions for configuration-control data input from external computers by way of data buses.
Many modern oscilloscopes are designed to be expandable so that as additional hardware and software subsystems are created, the new subsystems may be incorporated into existing oscilloscopes. Hardware subsystem additions are often accommodated by providing spare "slots" in an oscilloscope mainframe into which new circuit boards containing the additional hardware can be inserted. Software changes are often accomplished by replacing read only memories (ROMs) storing existing system software with ROMs including new software. (Program instructions stored in ROMs are sometimes referred to as "firmware" rather than "software", but herein the term "software" is intended to apply to all forms of computer program instructions.) However, addition of new hardware of software subsystems often necessitates rewriting of extensive portions of preexisting software to insure the new subsystem interacts properly with existing subsystems, and to provide for configuration control over the new subsystem through the existing means of configuration control. What is needed is a configuration control system for a computer-based instrument which permits addition or modification of hardware and software subsystems of the instrument without requiring modification of extensive portions of existing software.